package persi.futbol.jugador;

import java.util.HashSet;
import java.util.Set;

import persi.entities.Entidad;
import persi.enums.Posicion;
import persi.futbol.formacion.Formacion;
import persi.futbol.habilidad.Habilidad;
import persi.futbol.interfaces.Nombrable;

public class Jugador extends Entidad implements Nombrable {

	public static final String NOMBRE = "nombre";
	private Set<Habilidad> habilidades = new HashSet<Habilidad>();
	private Set<Formacion> formaciones = new HashSet<Formacion>();
	private String nombre;

	public Jugador() {

	}

	public Jugador(final String nombre) {
		super();
		this.nombre = nombre;
	}

	public void agregarHabilidad(final Habilidad habilidad) {
		this.getHabilidades().add(habilidad);
	}

	public Set<Formacion> getFormaciones() {
		return formaciones;
	}

	public Set<Habilidad> getHabilidades() {
		return habilidades;
	}

	@Override
	public String getNombre() {
		return nombre;
	}

	public int getValorHabilidad(final Posicion pos) {
		int max = 0;
		for (final Habilidad habilidadActual : this.getHabilidades()) {
			final int valor = habilidadActual.getValor(pos);
			max = max < valor ? valor : max;
		}
		return max;
	}

	public void setFormaciones(final Formacion formaciones) {
		this.getFormaciones().add(formaciones);
	}

	public void setFormaciones(final Set<Formacion> formaciones) {
		this.formaciones = formaciones;
	}

	public void setHabilidades(final Set<Habilidad> habilidades) {
		this.habilidades = habilidades;
	}

	public void setNombre(final String nombre) {
		this.nombre = nombre;
	}

}
